Terrorist attacks on networks, in particular, wide area networks, such as the Internet or World Wide Web (“WWW”), are increasing in frequency due to the fairly unstructured management, and relatively easy accessibility, of network systems. Network attacks can paralyze communications and transmission of data for significant periods of time. The suspension of the ability to communicate and transmit data can interrupt commerce for merchants, or even specific institutions, as well as, individuals.
Overall, a network is an assembly of devices, including routers or switches, servers, workstations and network computing devices. The servers, workstations and network computing devices create the infrastructure within the network that performs various tasks, such as, for example, storing data and processing data. Typically, the infrastructure devices are configured within an autonomous network, wherein the infrastructure within the specific autonomous network typically shares similar policies and protocols. The routers or switches connect these autonomous network infrastructures together and provide the communication path by which information is transmitted within the network.
More specifically, switching devices and routers are devices that facilitate communication within, and between, networks. Indeed, switching devices and routers direct traffic to appropriate destinations such that more efficient traffic management is available and information can reach its destination within a reasonable amount of time. In most networks, switching device are connected to, or service, specific network objects or routes. Worldwide, within network systems, groups of switching devices and routers can be connected such that each switching device in the group is aware of the network objects that each of the other switching devices service. In this manner, an incoming destination request can be more efficiently directed.
Switching devices and routers communicate with other devices, such as, for example, other switching devices or routers, by advertising information and passively receiving information. Switching devices and routers are configured to advertise routes, that is, paths between various destinations, and network objects, or devices, to which the switching device or router is physically coupled. In addition to advertising its information, a switching device or router is capable of receiving routes or network objects from the peer routers, that is, neighboring routers, or those switching devices and routers to which a transport connection can be established. In this manner, if a switching device or router does not service a particular address, it can determine whether any of the group routers service the address. If one of the group routers service the address, the incoming traffic is directed to the particular router that services the desired address. Typically, at least one edge router (discussed below) is coupled to the group routers so that information can be received from other networks as well. If none of the group routers connect with the address requested from the incoming traffic, and no edge router announces the network object, the router reports the destination as unreachable; that is, the destination address cannot be reached from this network.
A server is a storage medium for data files and other information, and is typically utilized to deliver information to multiple clients, or users. Many types of servers exist, including, for example, but not limited to, a web server, a file server, a database server and a terminal server. Typically, all servers are capable of servicing a finite number of connections, i.e., requests. If the server receives too many requests during a given period of time, repeatedly receives bogus information, bad source IP, or the like, the server is generally unable to service the requests. The server's resources become overloaded and the server crashes, that is, the server fails, or the server tries to suspend processing until resources are released. However, in the event of an attack on the server, resources are captured by the incoming requests and thus, the server is unable to recapture resources to process the requests. In this situation, the server typically crashes.
In addition to the routers and infrastructure devices, another device, known as a firewall, is typically found in a network. Although a firewall is not a necessary component of the network, the firewall typically protects the switching devices or routers and infrastructure devices from unscrupulous or undesired transmissions and verifies the recipients receiving the information.
A firewall is analogous to a gate that prevents certain traffic from being transmitted to a particular destination, such as, a server. Typically, a firewall is configured to allow certain types of network connections access through the firewall by implementing security requirements to the traffic, including, for example, packet filtering, authentication and encryption. Generally, a firewall is configured to determine abnormal levels of network activity, such as, for example, multiple requests from the same address and frequent illegal connection attempts.
As is commonly understood, multiple networks exist and can operate independently from each other. However, for more efficient communication, networks are coupled together to share information. All of the major networks are connected utilizing globally unique numbers known as an Autonomous System Number (“ASN”). Each network is assigned a unique ASN and all of the ASN network participants operate in accordance with common policies.
To effectively communicate between the various networks, a device known as an edge router is utilized. Edge routers operate similar to the manner in which routers within a network operate. However, to couple the multiple autonomous networks together, edge routers utilize a protocol known as Border Gateway Protocol (“BGP”). Edge routers advertise and receive route objects from other network edge routers through a process commonly referred to as “peering”. Peering is a process by which two or more routers broadcast or announce the route objects that they control, or have connectivity to, so that a routing or policy decision can be made as to where to transmit a packet of information. Currently, implementation of BGP determines the routing preference based upon the number of autonomous systems that the particular information packet must traverse prior to its final destination. Unfortunately, this policy does not currently consider network issues, such as, network segment load, or poor connectivity of the chosen route.
In operation, a request for access to information, or a particular destination, or address, emanates from a user computer on the network, or from another network. With reference to FIG. 1, in a network system environment, the user's computer is coupled to a specific core router that attempts to direct the user's request to the appropriate address. If the router services the requested address, the router coupled to the user's network directs the request to the address. If however, the router does not service the address, the router forwards the incoming information to an edge router in an attempt to deliver or transmit the packet. If the user's core router still does not find the address, via another known router, for example, the edge router, a determination is made that the destination is unreachable.
Once the address is located, if no firewall blocks the request from being transmitted, or the security restrictions of the firewall do not prevent the request from being transmitted, the request is transmitted to the server containing the requested destination address through the associated core router. In this manner, the user's request accesses the server without restriction. Due to the virtually unrestricted nature of transmissions for most servers, unscrupulous users can “flood” a server with multiple task requests, such as, for example, a requests that includes a return destination address that does not exist. Upon receipt of the request, the server will attempt to respond to the non-existent, or incorrect, address. If hundreds or thousands of bogus requests are made to a specific server, the resources of that server, the routers, or the firewall, guarding the server, are severely impacted such that normal traffic cannot successfully transmit to the server.
For example, a web server, which is capable of servicing thousands of clients per hour, listens to a network component known as a socket or port, such as, for example, port 80. Typically, all incoming web based requests are directed to port 80 on a web server's IP address. The structure of a web server's IP address is commonly understood and will not be further described herein. When an attack is launched on a web server, all of the requests, typically thousands of requests, are directed to port 80. As the web server is only capable of servicing a finite number of requests, the web server ultimately crashes or is unable to service the incoming requests, if the number of requests is not suspended. One possible defense against an attack is to protect or guard the server by a firewall that will determine abnormal levels of activity. However, this does not solve the problem, as it does not address the network load issue that can potentially lead to a crash or network resource overload at the firewall device.
To efficiently operate a network within the configuration of a collection of networks, such as, the Internet, the firewall must allow certain types of traffic to pass. Thus, as stated above, any individual network can be subjected to unscrupulous acts emanating from another network. In the event of an attack on the individual network, the firewall is limited in its actions; namely, the firewall can prevent the attacker, i.e., the problematic traffic, from passing through the firewall. Thus, if the firewall is protecting the server, the server will be prevented from receiving the flood of requests. In these instances, the firewall will either acknowledge or ignore the bogus request. If the firewall acknowledges, but rejects the request, the request is transmitted back to the originator. If the return address is false or otherwise inaccurate, the network connecting the firewall to the router can become “flooded” or saturated as the connecting network is unable to process the packets of information. The unprocessed packets overtax the resources of the router, as the router is unable to process the information, and further, is unable to dispose of the rejected packets of information from the firewall. Thus, ultimately, the router, or one of the devices, crashes, or overloads, which causes the network connecting the devices to crash or collapse.
As discussed above, the current attempts to eliminate fraudulent requests to a server, or its firewall, are limited to blocking the source address, and preventing repeated requests to respond to one address via blocking the request. Although these mechanisms can prevent fraudulent requests from being sent to, or received by, the server, to prevent the transmission of requests from the suspected traffic, the network device receiving the requests, such as, the routers or firewall, must review each incoming packet. Thus, although these requests can be identified, the identification of these requests require that the network device, such as, the router or firewall, look at each incoming packet to determine whether to block the transmission. As such, these solutions do not prevent the stifling of traffic flow and often still result in the router, firewall or server from being paralyzed as the problem is merely shifted between the devices within the network. A need in the industry exists for a system and apparatus that can identify emerging problematic traffic patterns on a network and efficiently redirect the traffic without affecting the resources of other network devices.